By Urs "Cody" Hochstrasser, Fast Eddie Labs, Switzerland.
Introduction
The Fast Eddie Monitor ('monitor' in this text) was created to make the testers' life a tiny bit easier. Therefore it features memory dumps, register and flag display, setting of memory locations, flags and registers, loading and saving of memory dumps from/to disk, a disassembler, a mini assembler and something quite mysterious called the reality mode. Furthermore you can save the contents of the scrollback buffer to disk. For longer output (the scrollback buffer has a size limit of 32K) text output can be streamed to a file. The most important Macintosh GUI features are implemented in version 1.0d7 (scrolling, zooming, window resizing, no Copy/Paste yet).
Being modeled after the legendary GS monitor, it should be straightforward to use. Tiny changes in the commands have been made however, because the monitor doesn't support control characters in the command line. CTRL-E (Register display) becomes 'P' and ESC-@ is '@' in Fast Eddie.
There are some important points about the monitor worth discussion: Since it is running as a part of a Mac program it is not affected by crashes on the 65816 side of life. Even when the emulated processor is in the stratosphere you can inspect memory locations or list some code. But that's not all! Since the command entry is event driven like the rest of any Mac program, you can use the monitor while the emulator is running!
When the monitor windowis closed, it is only hidden. This means the content is preserved until you quit Fast Eddie.
List of Instructions
Here is a list of all commands the monitor understands, along with some explanations. The command line parser has been tested until it worked well enough for normal purposes, not more. E.g. it doesn't support multiple instructions per command line.
Of course you don't need to type exactly 2, 4 or 8 digits to specify a hex value. Just specify as many digits as necessary.
If not specified otherwise you can use lower or uppercase characters for commands.
The following metacharacters are used in this list: Optional stuff is between [ and ]. <CR> is the carriage return key (you can also use the enter key on the keypad).
@ Clear Screen (ESC-@ in GS monitor)
This command was once important since the monitor is based on the 32K limited TextEdit. It doesn't only clear the screen but also the text buffer. The monitor now handles text buffer overflow appropirately.
? Help
Display a little reminder about the commands our little monitor understands.
[nn/nnnn.mm/mmmm]<CR> Memory Dump
Display the next memory locations. Since the monitor has a 80 column display it shows 16 bytes in a row maximum, togehther with the ASCII equivalent. By default cross bank dumping is off. It can be toggled with the 'X' command. Display can be stopped by pressing 'Command-.' Memory dump is affected by reality mode (see 'M' command).
[nn/nnnn.mm/mmmm]:xx yy zz ... Set Memory Bytes
Set Memory Bytes. Only limited by the maximum length of the command line. This instruction is affected by reality mode (see 'M' command).
P Processor Status (CTRL-E in GS monitor)
Display register contents, flags and status register (bitwise). This command also copies the processor emulator's registers into its own internal variables (needed for disassembly).
nn=r Set Register
Set register or flag to nn. r can be the following: A, X, Y, S, D, B, K, n, z, c, i, d, v, e, m, x. Caution: these are case sensitive!
[nn/nnnn.mm/mmmm]R Read from Disk
Read any file to the specified address. If a range is specified only bytes within that range are loaded. This instruction is affected by reality mode (see 'M' command).
[nn/nnnn.mm/mmmm]W Write to Disk
Write a range of memory to a disk file of type 'TEXT'. If no range is specified or the range is empty 'W' does nothing.
The range specification itself is not saved. Therefore you must specify the starting address explicitely when loading it again. This instruction is affected by reality mode (see 'M' command).
[nn/nnnn]L Disassemble
Disassembles 20 instructions. Sets internal e and x flags according to REPs, SEPs and XCEs like the ROM 03 monitor. Displays inline GS/OS call (JSL $E100A8) and ProDOS MLI call (JSR $BF00) correctly. This instruction is affected by reality mode (see 'M' command).
[nn/nnnn]S Step
Display one instruction a time. This instruction is affected by reality mode (see 'M' command).
! Mini Assembler
Enter Mini Assembler Mode. Prompt changes to '!'. Interprets typed 65816 instructions like the original, i.e. you can type assembly language instructions like this:
! LDA #3
There are some exceptions however:
- there is no space character required in front of the assembly instruction:
!ADC 2
The instruction is immediately disassembled for you to check the code.
- no special order is required in the argument list:
!LDA (2,S),Y can also be written like this: !LDA(sy2 or LDAys2(
(the mini assembler recognizes only these elements: number, #, (, [, X, Y, S ).
- the error messages are in plain english. No guessing what's wrong...
This instruction is affected by reality mode (see 'M' command).
M Reality Mode
Toggle reality mode off/on. When reality mode is on, all memory mapping in effect on the emulator also affects some monitor commands. I.e. you can throw softswitches, load and view SHR pictures, enjoy shadowing, etc...
Here's an example: load an uncompressed GS super hires dump into E1/2000. Set C1/C029 to C1. Presto, the picture is displayed!
If reality mode is off, all memory banks are treated as plain RAM without any other functionality.
X Crossbank Dump Toggle
This option is disabled by default (on request of an important tester...). In this mode the address wraps to 0000 without incrementing the bank. With crossbank dump it does increment the bank.
How to Save and Stream
There is a tiny disk button in the lower left corner of the monitor window. When you press it with the mouse, a popup menu is displayed. You can:
- display the About Box
- Save the text buffer of the monitor window to a disk file
- enable streaming: any further text output is also written to a disk file until you press the stop
button next to the disk button. The emulator command 'Step Ad Nauseam...' invokes
streaming as well.
Have Fun!
--Urs
Version History
1.0d7
Added features: Standard Macintosh GUI features (scroll bar, zooming, window resizing. Text selection with Copy/Paste not yet implemented). Proper text overflow handling. Saving of window content and streaming text output to disk. A boundary check has been introduced; entering too high addresses or banks no longer crashes the Mac.
1.0d6
First documented version :-) featuring memory dumps, register and flag display, setting of memory locations, flags and registers, loading and saving of memory dumps from/to disk, a disassembler, a mini assembler and the reality mode.
Legalese
Copyright 1996 by Fast Eddie Labs and Urs Hochstrasser. Specifications are subject to change without notice. Mac, Macintosh, Apple II, GS and 65816 are (registered) trademarks of their respective holders.